The present invention relates, in general, to the field of data storage and data communication. More particularly, the present invention relates to a technique for reducing parity bit-widths for check bit and syndrome generation through the use of additional check bits to increase the number of minimum weighted codes in the Hamming Code H-Matrix.
The use of Hamming code provides a method for protecting data blocks against single bit errors such that any single bit error can be detected and corrected. In general, a Hamming Code is usually described by the use of a matrix, called the Hamming matrix, or H-matrix. The H-Matrix is an (n−k) by n matrix which defines which data bits are used to combine with each check bit for generating the syndrome.
Many different methods have been employed to date in an attempt to minimize power consumption and reduce circuit complexity for parallel error correction code (ECC) applications. See, for example, Ghosh, S. et al.; “Selecting Error Correction Codes to Minimize Power in Memory Checker Circuits”; Journal of Low Power Electronics, Vol. 1, pp. 63-72, 2005 and Ghosh, S. et al.; “Reducing Power Consumption in Memory ECC Checkers”, Proceedings of the IEEE International Test Conference (ITC-2004), Charlotte, N.C., October 2004, the disclosures of which are herein incorporated by reference.
Prior ECC implementations use well-known equations for determining the minimum number of redundant bits required for the level of correction/detection and word length used. Generally, single error correction/single error detection (SEC/SED) or single error correction/double error detection (SEC/DED) techniques ECC are used, but higher levels of correction and detection are possible using the same basic concepts. The equations below provide the necessary Hamming distance and number of redundant bits needed to implement either SEC/SED or SEC/DED capability. The number of redundant bits (Check Bits) for a specific word length determines the error correction/detection capability, but in addition, the number of check bits determines the number of vectors available for each weighted code in the H-Matrix.
For SEC/SED, Hamming Distance=3:    log.sub.2(n)+1.ltoreq.n−k where n is the number of codeword bits, where k is the number of data bits, (n−k) is the number of redundant bits (Check Bits)
For SEC/DED, Hamming Distance=4:    log.sub.2(n)+2.gtoreq.n−k
This is similar to the preceding equation with one more check bit required over that required for SEC/SED.
In most SEC/DEC applications, only “odd” weighted codes are used (commonly known as Odd Weighted Hsiao Codes), eliminating the use of Weight=2 codes. If all weight codes are used, the method to comprehend double bit detection becomes more complicated.
Previously, however, no one has disclosed the technique of using “excessive” or extra check bit redundancy in Single Error Correction/Single Error Detection (SEC/SED) for ECC applications to serve to reduce the width of the parity circuit for check bit or syndrome generation.